package com.bbva.kyfb.kyfbdaohostfo.servicios.host.acceso;

import java.math.BigDecimal;
import java.util.Iterator;
import java.util.List;

import com.bbva.jee.arq.spring.core.host.protocolo.ExcepcionRespuestaHost;
import com.bbva.kyfb.kyfbdaohostfo.servicios.host.pggptk70_1_1_1.RespuestaTransaccionPggptk70_1_1_1;
import com.bbva.kyfb.kyfbdaohostfo.servicios.host.pggptw42_1_1_3.RespuestaTransaccionPggptw42_1_1_3;
import com.bbva.kyfb.kyfbdaohostfo.servicios.host.tpbft080_1_8_1.RespuestaTransaccionTpbft080_1_8_1;
import com.bbva.kyfb.kyfbdaohostfo.servicios.host.tpbft080_1_8_1.SalTabla;
import com.bbva.kyfb.kyfbdtofo.trf.ConsultarDetalleCuentaOutDto;
import com.bbva.kyfb.kyfbdtofo.trf.TransferenciaOutDto;


public class TransaccionToDto {

	public static TransferenciaOutDto RespuestaTranseferencia(
			RespuestaTransaccionPggptw42_1_1_3 respuesta) {
		
		TransferenciaOutDto trfOutDto = new TransferenciaOutDto();		
		trfOutDto.setCodError(respuesta.getCodErrorS());
		trfOutDto.setImpGastoComision(respuesta.getImpGastcomiS());		
		return trfOutDto;
	}
	
	public static TransferenciaOutDto RespuestaTranseferencia(
			RespuestaTransaccionPggptk70_1_1_1 respuesta) {
		
		TransferenciaOutDto trfOutDto = new TransferenciaOutDto();
		String codError = "";
		String ordenGdp = respuesta.getCodOrdengdp();
		if(ordenGdp!= null && !ordenGdp.isEmpty()) {
			codError = "000";
		}
		trfOutDto.setCodError(codError);
		trfOutDto.setImpGastoComision(respuesta.getImpCargocom());		
		return trfOutDto;		
	}

	public static ConsultarDetalleCuentaOutDto RespuestaconsultarDetalleCuenta(
			RespuestaTransaccionTpbft080_1_8_1 respuesta) {
		
		ConsultarDetalleCuentaOutDto cdcOut= new ConsultarDetalleCuentaOutDto();
		
		List<SalTabla> tabla = respuesta.getSalTabla();
		Iterator<SalTabla> iTabla = tabla.iterator();
		
		boolean encontrado = false;
		while (iTabla.hasNext() && !encontrado) {
			SalTabla detalle = iTabla.next();
			if("TIT".equalsIgnoreCase(detalle.getSalCtippe())) {
				cdcOut.setTitular(detalle.getSalDenomb());
				encontrado = true;
			}
		}
		return cdcOut;
	}

	public static TransferenciaOutDto RespuestaTranseferencia(
			ExcepcionRespuestaHost e) {
		TransferenciaOutDto trfOutDto = new TransferenciaOutDto();
		trfOutDto.setCodError(e.getCodigoError());
		trfOutDto.setDescripcionError(e.getDescripcionError());
		trfOutDto.setImpGastoComision(new BigDecimal(0));
		return trfOutDto;
	}

}
